//引入request实例
import request from '../../../util/request'

import { UserListResponseData, AllRoleResponseData, SetRoleData } from './type'
// 接口枚举
enum API {
  // 获取用户信息列表
  GET_USERLIST_URL = '/admin/acl/user/',
  // 新增用户信息
  ADD_USER_URL = '/admin/acl/user/save',
  // 修改用户信息
  UPDATE_USER_URL = '/admin/acl/user/update',
  // 获取全部职位,当前账号拥有的职位接口
  ALLROLEURL = '/admin/acl/user/toAssign/',
  // 给已有的用户分配角色接口
  SETROLE_URL = '/admin/acl/user/doAssignRole',
  // 删除用户信息
  DELETEUSER_URL = '/admin/acl/user/remove/',
  // 批量删除用户信息
  BATCHDELETEUSER_URL = '/admin/acl/user/batchRemove',
}

// 获取用户信息分页列表
export const reqUserList = (
  pageNo: number,
  pageSize: number,
  userName: string,
) => {
  return request.get<any, UserListResponseData>(
    API.GET_USERLIST_URL + `${pageNo}/${pageSize}?username=${userName}`,
  )
}

// 新增或修改用户信息的方法
export const reqAddOrUpdateUser = (UserInfoList: any) => {
  if (UserInfoList.id) {
    // 修改用户
    return request.put<any, any>(API.UPDATE_USER_URL, UserInfoList)
  } else {
    // 新增用户
    return request.post<any, any>(API.ADD_USER_URL, UserInfoList)
  }
}

//获取全部职位以及包含当前用户的已有的职位
export const reqAllRole = (userId: number) =>
  request.get<any, AllRoleResponseData>(API.ALLROLEURL + userId)

//分配职位
export const reqSetUserRole = (data: SetRoleData) =>
  request.post<any, any>(API.SETROLE_URL, data)

// 删除用户信息
export const reqDeleteUser = (id: number) => {
  return request.delete<any, any>(API.DELETEUSER_URL + id)
}
// 批量删除用户信息
export const reqBatchDeleteUser = (idList: number[]) => {
  return request.delete<any, any>(API.BATCHDELETEUSER_URL, {
    data: idList,
  })
}
